﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Web;

namespace Pantry.Commons
{
    public static class HttpHelper
    {
        #region QueryString
        public static string GetQueryStringValue(string pvName)
        {
            return HttpContext.Current.Request.QueryString[pvName];
        }
        public static string GetQueryStringString(string pvName)
        {
            return SafeData.ToString(GetQueryStringValue(pvName)).Trim();
        }
        //public static DateTime GetQueryStringDatetime(string pvName)
        //{
        //    return SafeData.ToDateTime(GetQueryStringValue(pvName));
        //}
        //public static bool GetQueryStringBoolean(string pvName)
        //{
        //    return SafeData.ToBool(GetQueryStringValue(pvName));
        //}
        //public static double GetQueryStringDouble(string pvName)
        //{
        //    return SafeData.ToDouble(GetQueryStringValue(pvName));
        //}
        //public static float GetQueryStringFloat(string pvName)
        //{
        //    return SafeData.ToFloat(GetQueryStringValue(pvName));
        //}
        //public static long GetQueryStringLong(string pvName)
        //{
        //    return SafeData.ToLong(GetQueryStringValue(pvName));
        //}
        //public static int GetQueryStringInt(string pvName)
        //{
        //    return SafeData.ToInt(GetQueryStringValue(pvName));
        //}
        #endregion

        #region Form
        public static string GetFormValue(string pvName)
        {
            return HttpContext.Current.Request.Form[pvName];
        }
        public static string GetFormString(string pvName)
        {
            return SafeData.ToString(GetFormValue(pvName)).Trim();
        }
        //public static DateTime GetFormDateTime(string pvName)
        //{
        //    return SafeData.ToDateTime(GetFormValue(pvName));
        //}
        //public static bool GetFormBoolean(string pvName)
        //{
        //    return SafeData.ToBool(GetFormValue(pvName));
        //}
        //public static double GetFormDouble(string pvName)
        //{
        //    return SafeData.ToDouble(GetFormValue(pvName));
        //}
        //public static float GetFormFloat(string pvName)
        //{
        //    return SafeData.ToFloat(GetFormValue(pvName));
        //}
        //public static long GetFormLong(string pvName)
        //{
        //    return SafeData.ToLong(GetFormValue(pvName));
        //}
        //public static int GetFormInt(string pvName)
        //{
        //    return SafeData.ToInt(GetFormValue(pvName));
        //}
        //public static byte GetFormByte(string pvName)
        //{
        //    return SafeData.ToByte(GetFormValue(pvName));
        //}
        #endregion
    }


    public static class SafeData
    {
        //public static byte ToByte(object pvObj)
        //{
        //    if (pvObj == null || pvObj == DBNull.Value || pvObj.ToString().Trim() == String.Empty)
        //    {
        //        return 0;
        //    }
        //    else
        //    {
        //        return (byte)Convert.ToByte(pvObj);
        //    }
        //}
        //public static int ToInt(object pvObj)
        //{
        //    if (pvObj == null || pvObj == DBNull.Value || pvObj.ToString().Trim() == String.Empty)
        //    {
        //        return 0;
        //    }
        //    else
        //    {
        //        return (int)Convert.ToInt32(pvObj);
        //    }
        //}
        //public static long ToLong(object pvObj)
        //{
        //    if (pvObj == null || pvObj == DBNull.Value || pvObj.ToString().Trim() == String.Empty)
        //    {
        //        return 0;
        //    }
        //    else
        //    {
        //        return (long)Convert.ToInt64(pvObj);
        //    }
        //}
        //public static bool ToBool(object pvObj)
        //{
        //    if (pvObj == null || pvObj == DBNull.Value || pvObj.ToString().Trim() == String.Empty)
        //    {
        //        return false;
        //    }
        //    else
        //    {
        //        return Convert.ToBoolean(pvObj);
        //    }
        //}
        //public static DateTime ToDateTime(object pvObj)
        //{
        //    if (pvObj == null || pvObj == DBNull.Value || pvObj.ToString().Trim() == String.Empty)
        //        return DateTime.MaxValue;
        //    else if (pvObj is String)
        //        return DateTime.Parse(pvObj.ToString());
        //    else
        //        return (DateTime)pvObj;
        //}
        //public static float ToFloat(object pvObj)
        //{
        //    if (pvObj == null || pvObj == DBNull.Value || pvObj.ToString().Trim() == String.Empty)
        //    {
        //        return 0;
        //    }
        //    else
        //    {
        //        return Convert.ToSingle(pvObj);
        //    }
        //}
        //public static double ToDouble(object pvObj)
        //{
        //    if (pvObj == null || pvObj == DBNull.Value || pvObj.ToString().Trim() == String.Empty)
        //    {
        //        return 0.0;
        //    }
        //    else
        //    {
        //        return Convert.ToDouble(pvObj);
        //    }
        //}
        public static string ToString(object privateValue)
        {
            IFormatProvider formatProvider = new CultureInfo("en-gb");
            if (privateValue == null || privateValue == DBNull.Value || string.IsNullOrEmpty(privateValue.ToString()))
            {
                return "";
            }
            return Convert.ToString(privateValue, formatProvider);
        }
    }
}
